package com.xuzhiguang.baidu.pan.sdk.model;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;

import java.util.List;

/**
 * @author xuzhiguang
 * @date 2020/6/26 14:46
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public class BaiduPanFile {

    /**
     * 文件在云端的唯一标识ID
     */
    private Long fsId;

    /**
     * 文件的绝对路径
     */
    private String path;

    /**
     * 文件名称
     */
    private String serverFilename;

    /**
     * 文件大小，单位B
     */
    private Long size;

    /**
     * 	文件在服务器修改时间
     */
    private Long serverMtime;

    /**
     * 文件在服务器创建时间
     */
    private Long serverCtime;

    /**
     * 	文件在客户端修改时间
     */
    private Long localMtime;

    /**
     * 文件在客户端创建时间
     */
    private Long localCtime;

    /**
     * 是否目录，0 文件、1 目录
     */
    private Integer isdir;

    /**
     * 文件类型，1 视频、2 音频、3 图片、4 文档、5 应用、6 其他、7 种子
     */
    private Integer category;

    /**
     * 下载地址
     */
    private String dlink;

    /**
     * 	文件的md5值，只有是文件类型时，该KEY才存在
     */
    private String md5;

    /**
     * 	该目录是否存在子目录， 只有请求参数带WEB且该条目为目录时，该KEY才存在
     */
    private Integer dirEmpty;

    /**
     * 文档预览地址
     */
    private String lodocpreview;

    /**
     * 文档预览地址
     */
    private String docpreview;

    private String objectKey;

    private Integer share;

    private Integer operId;

    private Integer extentTinyint1;

    /**
     * 只有请求参数带WEB且该条目分类为图片时，该KEY才存在，包含三个尺寸的缩略图URL
     */
    private List<Thumb> thumbs;


    /**
     * 缩略图
     */
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Thumb {

        private String icon;

        private String url1;

        private String url2;

        private String url3;

    }
}
